﻿CREATE PROCEDURE [dbo].[proc_UnidadesContratosRefeicoesLoadByPrimaryKey]
(
	@IdRefeicaoContratada bigint,
	@IdUnidade bigint
)
AS
BEGIN
	SET NOCOUNT ON
	DECLARE @Err int

	SELECT
		cr.[IdRefeicaoContratada],
		cr.CodTipoRefeicao,
		ttr.Descricao as DescricaoTipoRefeicao,
		ttr.DescricaoCurta as DescricaoCurtaTipoRefeicao,
		ttr.Simbolo as SimboloTipoRefeicao,
		ttr.Tipo as TipoTipoRefeicao,
		cr.CodTipoClasseRefeitorio,
		tcr.Descricao as DescricaoTipoClasse,
		tcr.DescricaoCurta as DescricaoCurtaTipoClasse,
		tcr.Simbolo as SimboloTipoClasse,
		tcr.Tipo as TipoTipoClasse,
		u.[IdUnidade],
		u.IdCliente,
		u.Designacao as DesignacaoUnidade,
		u.Servico,
		u.UnidadePai,
		ucr.[CodTipoServico],
		t.Descricao as DescricaoTipoServico,
		t.DescricaoCurta as DescricaoCurtaTipoServico,
		t.Simbolo as SimboloTipoServico,
		t.Tipo as TipoTipoServico,
		CASE 
			WHEN ucr.IdUnidade IS null THEN 0
			ELSE 1
		END as Activa,
		ucr.[DataCriacao],
		ucr.[DataAlteracao]
	 FROM ContratosRefeicoes cr 
		inner join Contratos c on c.NumeroContrato = cr.NumeroContrato and c.IdUnidade = dbo.ObterUnidadedeContratoParaUnidade(@IdUnidade)
			inner join Tipologias ttr on ttr.Codigo = cr.CodTipoRefeicao
				left join Tipologias tcr on tcr.Codigo = cr.CodTipoClasseRefeitorio
					left join Unidades u on u.IdUnidade = @IdUnidade
						left join [UnidadesContratosRefeicoes] ucr 
							left join Tipologias t on t.Codigo = ucr.CodTipoServico
							 on cr.IdRefeicaoContratada = ucr.IdRefeicaoContratada
					       and (ucr.[IdUnidade] = @IdUnidade)
	WHERE
		(cr.[IdRefeicaoContratada] = @IdRefeicaoContratada)
	

	SET @Err = @@Error

	RETURN @Err
END
